from typing import Dict, Set

"""
allowed_attrs_dict中列出的标记属性
允许的其他标记(allowed_tags_dict中定义的标记)它们也适用于共同.
key和 value什么是组成的是视觉列表.
不允许仅用于这些标记的属性。, 公共允许属性.

lxml 在图书馆 allow_tags, allow_attrs用于 if 由于门四分之一加工的特点
要允许的标记, 如果没有属性 dict() 或 set()如果您使用 blocklist 它会在某种程度上工作.
相应的代码是 allowlist 因为它是为了某种方式而写的,
allow_tags, safe_attrs对 set()你不应该去一个空值，如.
如果您不想相应地允许所有标签或所有属性， {'None': {''}}设置方式与.
"""


# BaseSanitizer
common_allowed_tags_dict: Dict[str, Set[str]] = {'None': {''}}
common_allowed_attrs_dict: Dict[str, Set[str]] = {'None': {''}}


# SubjectSanitizer
subject_private_allowed_tags_dict: Dict[str, Set[str]] = {'None': {''}}
subject_private_allowed_attrs_dict: Dict[str, Set[str]] = {'None': {''}}


# ContentSanitizer
content_private_allowed_tags_dict: Dict[str, Set[str]] = {
    'text': {'b', 'del', 'em', 'i', 'ins', 'mark', 'p', 's', 'small', 'span', 'strong', 'sub', 'sup', 'u'},
    'h_tags': {'h1', 'h2', 'h3', 'h4', 'h5', 'h6'},
    'list': {'ul', 'ol', 'li', 'dl', 'dt', 'dd'},
    'table': {'table', 'th', 'tr', 'td', 'thead', 'tbody', 'tfoot', 'caption', 'col', 'colgroup'},
    'block': {'div', 'main', 'section', 'article', 'aside', 'nav'},
    'formatting': {'blockquote', 'hr', 'br'},
    'media': {'img', 'audio', 'video', 'source', 'track'},
    'link': {'a'},
}
content_private_allowed_attrs_dict: Dict[str, Set[str]] = {
    'a': {'href', 'title', 'accesskey', 'class', 'dir', 'id', 'lang', 'name', 'rel', 'tabindex', 'type', 'target'},
    'table': {'border', 'cellspacing', 'cellpadding', 'align', 'bgcolor', 'summary'},
    'th': {'scope'},
    'img': {'src', 'alt', 'title', 'width', 'height', 'align'},
    'common': {'style'},
}